package com.nine.design.pay.v0;

import lombok.extern.slf4j.Slf4j;

/**
 * v0：没有设计模式的demo
 * v1：使用 策略模式
 * v2：使用 策略模式 + 工厂模式 + InitializingBean
 * v3：使用 策略模式 + 工厂模式 + 模板方法模式 + InitializingBean
 */
@Slf4j
public class NoDesignDemo {

    // 支付逻辑
    public void pay(String type) {

        // 根据支付类型，选择不同的支付方式
        if ("wx".equals(type)) {
            log.info("before：检查账户是否异常。。。。。。。。");
            log.info("【实际操作】微信支付...................");
        }
        else if ("zfb".equals(type)) {
            log.info("before：查询账户余额。。。。。。。。");
            log.info("【实际操作】支付宝支付...................");
            log.info("after：短信通知。。。。。。。。。");
        }
        else if ("yl".equals(type)) {
            log.info("【实际操作】银联支付...................");
        }
        else if ("jd".equals(type)) {
            log.info("【实际操作】京东支付...................");
        }
        else {
            throw new RuntimeException("暂不支持该类型支付");
        }
    }

    public static void main(String[] args) {
        NoDesignDemo demo = new NoDesignDemo();
        //demo.pay("wx");
        demo.pay("zfb");
    }

}
